/*
Esta clase es para tirar todas esas funciones utilies y mas bien genericas como normalizacion de vectores 
que irrlicht no tiene...y no se por que!
*/

#include "..\include\irrlicht.h"
using namespace irr;

namespace utils
{
	// Normaliza el vector pasado por parametro
	void normalize(core::vector3df & v, float norm = 1.0f);

	// Retorna la normal del vector v
	inline float normal(const core::vector3df & v);

	// Esto normaliza el vector y nos devuelve la norma del vector original
	float normalizeOptimzed(core::vector3df & v, float norm = 1.0f);

	// Devuelve true si los vectores estan alineados. El parametro error es el margen de 
	// de error maximo que tolera el algoritmo.
	bool aligned(core::vector3df & r, core::vector3df & d, float error = 0.0002f);

	// void RotateMatrix( const Matrix & m, float angle);
}// fin del namespace
